package com.naiterui.ehp.bs.emr.vo;

import java.io.Serializable;

import org.apache.commons.lang3.builder.ToStringBuilder;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel(value = "OldDoctorDesVO", description = "原医生填写基本病情")
public class OldDoctorDesVO implements Serializable {

    private static final long serialVersionUID = 3504355143771439136L;
    /**
     * 患者婚姻状态(0:未婚，1:已婚)
     */
    @ApiModelProperty(value = "患者婚姻状态(0:未婚，1:已婚)")
    @JsonInclude(Include.NON_NULL)
    private Integer maritalStatus;

    /**
     * 身高
     */
    @ApiModelProperty(value = "身高")
    @JsonInclude(Include.NON_NULL)
    private Integer height;

    /**
     * 体重
     */
    @ApiModelProperty(value = "体重")
    @JsonInclude(Include.NON_NULL)
    private Integer weight;

    /**
     * 过敏药物历史
     */
    @ApiModelProperty(value = "过敏药物历史")
    @JsonInclude(Include.NON_NULL)
    private String allergy;

    /**
     * 既往病史
     */
    @ApiModelProperty(value = "既往病史")
    @JsonInclude(Include.NON_NULL)
    private String pastDisease;

    /**
     * 家庭病史
     */
    @ApiModelProperty(value = "家庭病史")
    @JsonInclude(Include.NON_NULL)
    private String familyHistory;

    /**
     * 遗传病史
     */
    @ApiModelProperty(value = "遗传病史")
    @JsonInclude(Include.NON_NULL)
    private String hereditaryDisease;

    /**
     * 吸烟情况
     */
    @ApiModelProperty(value = "吸烟情况")
    @JsonInclude(Include.NON_NULL)
    private String smokeHistory;

    /**
     * 饮酒情况
     */
    @ApiModelProperty(value = "饮酒情况")
    @JsonInclude(Include.NON_NULL)
    private String drinkHistory;


    private OldDoctorDesVO(Builder builder) {
        this.setMaritalStatus(builder.maritalStatus);
        this.setHeight(builder.height);
        this.setWeight(builder.weight);
        this.setAllergy(builder.allergy);
        this.setPastDisease(builder.pastDisease);
        this.setFamilyHistory(builder.familyHistory);
        this.setHereditaryDisease(builder.hereditaryDisease);
        this.setSmokeHistory(builder.smokeHistory);
        this.setDrinkHistory(builder.drinkHistory);
    }

    public static Builder newBuilder() {
        return new Builder();
    }

    public Integer getMaritalStatus() {
        return this.maritalStatus;
    }

    public void setMaritalStatus(Integer maritalStatus) {
        this.maritalStatus = maritalStatus;
    }

    public Integer getHeight() {
        return this.height;
    }

    public void setHeight(Integer height) {
        this.height = height;
    }

    public Integer getWeight() {
        return this.weight;
    }

    public void setWeight(Integer weight) {
        this.weight = weight;
    }

    public String getAllergy() {
        return this.allergy;
    }

    public void setAllergy(String allergy) {
        this.allergy = allergy;
    }

    public String getPastDisease() {
        return this.pastDisease;
    }

    public void setPastDisease(String pastDisease) {
        this.pastDisease = pastDisease;
    }

    public String getFamilyHistory() {
        return this.familyHistory;
    }

    public void setFamilyHistory(String familyHistory) {
        this.familyHistory = familyHistory;
    }

    public String getHereditaryDisease() {
        return this.hereditaryDisease;
    }

    public void setHereditaryDisease(String hereditaryDisease) {
        this.hereditaryDisease = hereditaryDisease;
    }

    public String getSmokeHistory() {
        return this.smokeHistory;
    }

    public void setSmokeHistory(String smokeHistory) {
        this.smokeHistory = smokeHistory;
    }

    public String getDrinkHistory() {
        return this.drinkHistory;
    }

    public void setDrinkHistory(String drinkHistory) {
        this.drinkHistory = drinkHistory;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

    public static final class Builder {
        private Integer maritalStatus;
        private Integer height;
        private Integer weight;
        private String allergy;
        private String pastDisease;
        private String familyHistory;
        private String hereditaryDisease;
        private String smokeHistory;
        private String drinkHistory;

        private Builder() {
        }

        public Builder maritalStatus(Integer maritalStatus) {
            this.maritalStatus = maritalStatus;
            return this;
        }

        public Builder height(Integer height) {
            this.height = height;
            return this;
        }

        public Builder weight(Integer weight) {
            this.weight = weight;
            return this;
        }

        public Builder allergy(String allergy) {
            this.allergy = allergy;
            return this;
        }

        public Builder pastDisease(String pastDisease) {
            this.pastDisease = pastDisease;
            return this;
        }

        public Builder familyHistory(String familyHistory) {
            this.familyHistory = familyHistory;
            return this;
        }

        public Builder hereditaryDisease(String hereditaryDisease) {
            this.hereditaryDisease = hereditaryDisease;
            return this;
        }

        public Builder smokeHistory(String smokeHistory) {
            this.smokeHistory = smokeHistory;
            return this;
        }

        public Builder drinkHistory(String drinkHistory) {
            this.drinkHistory = drinkHistory;
            return this;
        }

        public OldDoctorDesVO build() {
            return new OldDoctorDesVO(this);
        }
    }
}
